package com.taxshare.seller.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.taxshare.mybatis.entity.BaseEntity;
import com.taxshare.seller.constant.SellerRedInvoiceConstant;
import com.taxshare.seller.constant.table.TableConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.simpleframework.xml.Transient;

import java.io.Serializable;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(TableConstant.t_SELLER_RED_INVOICE)
@ApiModel(description = "红字申请单")
public class SellerRedInvoiceEntity extends BaseEntity implements Serializable {

    @TableId("uuid")
    @ApiModelProperty("主键")
    private String uuid;
    /**
     * 申请编号
     */
    @TableField(SellerRedInvoiceConstant.REQ_NO)
    private String reqNo;

    /**
     * 信息表编号
     */
    @TableField(SellerRedInvoiceConstant.RED_INFO_NO)
    private String redInfoNo;

    /**
     * 购方名称
     */
    @TableField(SellerRedInvoiceConstant.PURCHASER_NAME)
    private String purchaserName;

    /**
     * 购方税号
     */
    @TableField(SellerRedInvoiceConstant.PURCHASER_TAX_NO)
    private String purchaserTaxNo;

    /**
     * 销方名称
     */
    @TableField(SellerRedInvoiceConstant.SELLER_NAME)
    private String sellerName;

    /**
     * 销方税号
     */
    @TableField(SellerRedInvoiceConstant.SELLER_TAX_NO)
    private String sellerTaxNo;

    /**
     * 税率
     */
    @TableField(SellerRedInvoiceConstant.TAX_RATE)
    private String taxRate;

    /**
     * 合计金额
     */
    @TableField(SellerRedInvoiceConstant.TOTAL_SUM)
    private String totalSum;

    /**
     * 合计税额
     */
    @TableField(SellerRedInvoiceConstant.TOTAL_TAX)
    private String totalTax;

    /**
     * 价税合计
     */
    @TableField(SellerRedInvoiceConstant.TOTAL_SUM_TAX)
    private String totalSumTax;

    /**
     * 申请方税号
     */
    @TableField(SellerRedInvoiceConstant.REQ_TAX_NO)
    private String reqTaxNo;

    /**
     * 填开日期
     */
    @TableField(SellerRedInvoiceConstant.INPUT_DATE)
    private String inputDate;

    /**
     * 申请日期
     */
    @TableField(SellerRedInvoiceConstant.REQ_DATE)
    private String reqDate;

    /**
     * 申请类型（0-销方申请；1-购方申请）
     */
    @TableField(SellerRedInvoiceConstant.REQ_TYPE)
    private String reqType;

    /**
     * 是否已抵扣(0-未抵扣 1-已抵扣) 申请类型必须为购方申请
     */
    @TableField(SellerRedInvoiceConstant.IS_DEDUCTED)
    private String isDeducted;

    /**
     * 发票代码
     */
    @TableField(SellerRedInvoiceConstant.INVOICE_CODE)
    private String invoiceCode;

    /**
     * 发票号码
     */
    @TableField(SellerRedInvoiceConstant.INVOICE_NO)
    private String invoiceNo;

    /**
     * 申请状态（0-审批通过；1-审批不通过；2-申请异常；3-撤销; 4-已核销(已开过红字); 5-原票已认证(购方把发票抵扣勾选了)）
     */
    @TableField(SellerRedInvoiceConstant.TICKET_STATE)
    private String ticketState;

    /**
     * 销方申请原因
     */
    @TableField(SellerRedInvoiceConstant.SELLER_APPLY_REASON)
    private String sellerApplyReason;

    @TableField("order_no")
    private String orderNo;

    /**
     * 明细
     */
    @TableField(exist = false)
    private List<SellerRedInvoiceDetailEntity> details;
}
